Towards Usable Program Verifiers
نویسنده
چکیده
Code deficiencies and bugs constitute an unavoidable part of software systems. In safety-critical systems, like aircrafts or medical equipment, even a single bug can lead to catastrophic impacts such as injuries or death. Formal verification can be used to statically track code deficiencies by proving or disproving correctness properties of a system. However, at its current state formal verification is a cumbersome process that is rarely used by mainstream developers. The goal of my research is to build usable formal verifiers. A usable verifier naturally integrates the specification of correctness properties in the development process. Moreover, verification should be automatic, requiring no explicit proofs or complicated annotations. At the same time, the specification language should be expressive, allowing the user to write arbitrary correctness properties. Error reporting and diagnosis should provide insightful error messages and potential fixes any time verification fails. Finally, a usable verifier should be tested in real-world programs.
منابع مشابه
Position Paper: Thoughts on Programming with Proof Assistants
Today the reigning opinion about computer proof assistants based on constructive logic (even from some of the developers of these tools!) is that, while they are very helpful for doing math, they are an absurdly heavy-weight solution to use for practical programming. Yet the Curry-Howard isomorphism foundation of proof assistants like Coq [BC04] gives them clear interpretations as programming e...
متن کاملCooperatively combining program verifiers: foundations and tool support
Computer science literature abounds with descriptions of program verifiers, systems which analyse a software program and attempt to prove automatically that the program satisfies behavioural specifications. Techniques used include predicate abstraction, three-valued heaps graphs and classes of polyhedra. Yet while these systems have had some encouraging successes, each deals only with particula...
متن کاملApplying FSQ Engineering Foundations to Automated Calculation of Program Behavior
...............................................................................................................v 1 The Problem of Understanding Program Behavior....................................1 2 Background: Function-Theoretic Foundations of FSQ Flow Structures..3 3 Function-Theoretic Calculation of Program Behavior ...............................6 4 The Architecture of an Abstraction Engin...
متن کاملThe Dafny Integrated Development Environment
In recent years, program verifiers and interactive theorem provers have become more powerful and more suitable for verifying large programs or proofs. This has demonstrated the need for improving the user experience of these tools to increase productivity and to make them more accessible to nonexperts. This paper presents an integrated development environment for Dafny—a programming language, v...
متن کاملReducer-Based Construction of Conditional Verifiers
Despite recent advances, software verification remains challenging. To solve hard verification tasks, we need to leverage not just one but several different verifiers employing different technologies. To this end, we need to exchange information between verifiers. Conditional model checking was proposed as a solution to exactly this problem: The idea is to let the first verifier output a condit...
متن کاملذخیره در منابع من
با ذخیره ی این منبع در منابع من، دسترسی به آن را برای استفاده های بعدی آسان تر کنید
عنوان ژورنال:
دوره شماره
صفحات -
تاریخ انتشار 2015